home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / oh_towns / townsfos / fdump.bas < prev    next >
BASIC Source File  |  1991-10-18  |  2KB  |  77 lines

  1. 10000 '
  2. 10010 ' File Dump Utility : "FDUMP.BAS" : By TARO
  3. 10020 '
  4. 10030 '
  5. 10040 DEFINT A-Z:DIM D%(256)
  6. 10050 PRINT : PRINT "****** FDUMP : ファイル・ダンプ・ユーティリティ ******"
  7. 10060 PRINT
  8. 10070 PFLG=0
  9. 10080 '
  10. 10090 IF ARGC%>1 THEN *SK_1
  11. 10100   LINE INPUT "    Filename ? ",FLNAME$ : IF FLNAME$="" THEN 10430
  12. 10110   INPUT "    Printer ? (y/n) ",A$
  13. 10120   IF A$="y" OR A$="y" THEN PFLG=-1 ELSE PFLG=0
  14. 10130 GOTO *SK_2
  15. 10140 *SK_1
  16. 10150    FOR I=1 TO ARGC-1 : A$=ARGV$(I)
  17. 10160      IF A$="?" THEN *HELP
  18. 10170      IF A$="-p" OR A$="-P" THEN PFLG=-1:GOTO *SK_L
  19. 10180      IF FLNAME$="" THEN FLNAME$=A$
  20. 10190      *SK_L
  21. 10200    NEXT
  22. 10210 '
  23. 10220 *SK_2
  24. 10230 OPEN "I",#2,FLNAME$
  25. 10240 IF PFLG THEN OPEN "O",#1,"LPT0:" ELSE OPEN "O",#1,"SCRN:"
  26. 10250 ADD&=0
  27. 10260 PRINT #1 : PRINT #1,"***** Filename "+FLNAME$+" *****" : PRINT #1
  28. 10270 ADD&=0
  29. 10280 '
  30. 10290 IF EOF(2) THEN 10380 ' EOF   
  31. 10300 R%=0 : FOR I%=0 TO 255 : D%(I%)=0 : NEXT
  32. 10310 D%(R%)=ASC(INPUT$(1,2)) : IF EOF(2) THEN GOSUB 10480 : GOTO 10380
  33. 10320 R%=R%+1
  34. 10330 IF R%<256 THEN 10310
  35. 10340 GOSUB 10480 'Dump
  36. 10350 ADD&=ADD&+256
  37. 10360 GOTO 10300
  38. 10370 '
  39. 10380 :
  40. 10390 PRINT : PRINT "** 完了 **"
  41. 10400 '
  42. 10410 ' End
  43. 10420 '
  44. 10430 :
  45. 10440 IF ARGC%=0 THEN END
  46. 10450 CLOSE
  47. 10460 RETURN *S_T_RETURN
  48. 10470 '
  49. 10480 : I%=0 : SUM%=0
  50. 10490 PRINT #1,"OffSet +0 +1 +2 +3 +4 +5 +6 +7|+8 +9 +A +B +C +D +E +F :SM:   A  S  C  I  I"
  51. 10500 FOR Y%=O TO ((R%-1) \ 16)
  52. 10510   S$=RIGHT$("00000"+HEX$(ADD&+Y%*16),6)+" ":A$="":SUMX%=0
  53. 10520   FOR X%=0 TO 15 : C%=D%(I%)
  54. 10530     S$=S$+RIGHT$("0"+HEX$(C%),2)+" "
  55. 10540     IF C%<&H7F AND C%>&H1F THEN C$=CHR$(C%) ELSE C$="."
  56. 10550     A$=A$+C$:I%=I%+1:SUMX%=SUMX%+C%:SUM%=(SUM%+C%) MOD 256
  57. 10560    NEXT : MID$(S$,31,1)="|"
  58. 10570    PRINT #1,S$+":";RIGHT$("0"+HEX$( SUMX% MOD 256),2);": ";A$
  59. 10580 NEXT
  60. 10590 PRINT #1,STRING$(59,"-") : S$=" SUM : "
  61. 10600 FOR X%=0 TO 15
  62. 10610   SUMY%=0
  63. 10620   FOR Y%=0 TO 15
  64. 10630      SUMY%=SUMY%+D%(Y%*16+X%)
  65. 10640   NEXT
  66. 10650   S$=S$+RIGHT$("0"+HEX$(SUMY% MOD 256),2)+" "
  67. 10660   NEXT : MID$(S$,31,1)="|"
  68. 10670 PRINT #1,S$+":";RIGHT$("0"+HEX$(SUM%),2) : PRINT #1
  69. 10680 RETURN
  70. 10690 '
  71. 10700 *HELP
  72. 10710 S_A$="\n***** Help Message for FDump *****\n\n":GOSUB *S_PUTS_E
  73. 10720 S_A$="    FDump : File Dump Utility\n":GOSUB *S_PUTS_E
  74. 10730 S_A$="    Usage : FDump Filename [-p]\n":GOSUB *S_PUTS_E
  75. 10740 S_A$="          : -p  Printer\n":GOSUB *S_PUTS_E
  76. 10750 RETURN *S_T_RETURN
  77.